Low complexity algorithms for speech and audio coding constitute a very relevant asset, for instance for mobile terminal based communications.
Due to low storage and low complexity, while preserving coding efficiency, structured codebooks may be preferred in several state of the art speech and audio codecs, like for instance the Enhanced Voice Service (EVS) codec to be standardized within the Third Generation Partnership Project (3GPP).
Codebooks used within these speech and audio codecs may for instance be based on lattice structures, as described in reference “Multiple-scale leader-lattice VQ with application to LSF quantization” by A. Vasilache, B. Dumitrescu and I. Tabus, Signal Processing, 2002, vol. 82, pages 563-586, Elsevier, which is incorporated herein in its entirety by reference.
It is possible to define a lattice codebook as a union of leader classes, each of which is characterized by a leader vector. A leader vector is an n-dimensional vector (with n denoting an integer number), whose (e.g. positive) components are ordered (e.g. decreasingly). The leader class corresponding to the leader vector then consists of the leader vector and all vectors obtained through all the signed permutations of the leader vector (with some possible restrictions). It is also possible that one, some or all leader classes are respectively associated with one or more scales, and the lattice codebook is then formed as a union of scaled and/or unscaled leader classes.
An input vector may for instance be encoded (for instance in quantization) by finding the nearest neighbour codevectorcodevector in the codebook, i.e. the codevectorcodevector that has the smallest distance with respect to the input vector. An identifier of this codevectorcodevector (e.g. an index assigned to this codevectorcodevector) then may serve as an encoded representation of the input vector.
For instance, the speech or audio coding may be applied to different coding modes. As an example, quantization may be applied to a voiced, an unvoiced, a generic, a transition or a comfort noise generation (CNG) part of a signal. The CNG part uses fewer parts in general, and, consequently, fewer bits for quantization. However, for lower bitrates, the lattice based codebooks are not very efficient.